﻿//#include <QCoreApplication>
//#include <QtDebug>
//
//#include <ctkPluginFrameworkLauncher.h>
//#include <ctkPluginContext.h>
//#include <ctkPluginException.h>
//
//void stopPluginByName(ctkPluginContext* context, const QString& symbolicName) {
//    QList<QSharedPointer<ctkPlugin>> plugins = context->getPlugins();
//    for (const auto& plugin : plugins) {
//        if (plugin->getSymbolicName() == symbolicName) {
//            try {
//                plugin->stop();
//                qDebug() << symbolicName << "stopped.";
//                return;
//            }
//            catch (const ctkPluginException& e) {
//                qDebug() << "Failed to stop" << symbolicName << e.what();
//                return;
//            }
//        }
//    }
//    qDebug() << "Plugin with symbolic name" << symbolicName << "not found.";
//}
//
//int main(int argc, char *argv[])
//{
//    QCoreApplication app(argc, argv);
//
//    // 获取插件所在位置
//    QString path = QCoreApplication::applicationDirPath() + "/plugins";
//
//    // 在插件的搜索路径列表中添加一条路径
//    ctkPluginFrameworkLauncher::addSearchPath(path);
//
//    // 设置并启动 CTK 插件框架
//    ctkPluginFrameworkLauncher::start("org.commontk.eventadmin");
//
//    // 获取插件上下文
//    ctkPluginContext* context = ctkPluginFrameworkLauncher::getPluginContext();
//
//    // 启动插件 BlogEventHandlerUsingSlots
//    try {
//        QSharedPointer<ctkPlugin> plugin = context->installPlugin(QUrl::fromLocalFile(path + "/BlogEventHandlerUsingSlots.dll"));
//        plugin->start();
//        qDebug() << "BlogEventHandlerUsingSlots start ...";
//    } catch (const ctkPluginException &e) {
//        qDebug() << "Failed to start BlogEventHandlerUsingSlots" << e.what();
//    }
//
//    // 启动插件 BlogManagerUsingSignals
//    try {
//        QSharedPointer<ctkPlugin> plugin = context->installPlugin(QUrl::fromLocalFile(path + "/BlogManagerUsingSignals.dll"));
//        plugin->start();
//        qDebug() << "BlogManagerUsingSignals start ...";
//    } catch (const ctkPluginException &e) {
//        qDebug() << "Failed to start BlogManagerUsingSignals" << e.what();
//    }
//
//    // 停止插件
//    stopPluginByName(context, "com.Waleon.BlogEventHandlerUsingSlots");
//    stopPluginByName(context, "com.Waleon.BlogManagerUsingSignals");
//    //ctkPluginFrameworkLauncher::stop();
//
//    return app.exec();
//}
